﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace FrontEndPlus.Módulos.Catálogos_y_Mantenimientos
{
    public partial class wbfrm_Cambio_Productos : System.Web.UI.Page
    {
        #region Variables

        private WCF_Gimnasio.cls_Producto _producto = new WCF_Gimnasio.cls_Producto();
        private WCF_Gimnasio.cls_Tipo_Producto _tipoproducto = new WCF_Gimnasio.cls_Tipo_Producto();
        private WCF_Gimnasio.cls_Gimnasio _gimnasio = new WCF_Gimnasio.cls_Gimnasio();
        private WCF_Gimnasio.cls_Proveedor _proveedor = new WCF_Gimnasio.cls_Proveedor();
        private WCF_Gimnasio.ServiceClient _servicio = new WCF_Gimnasio.ServiceClient();

        #endregion

        #region Metodos



        #endregion

        #region Eventos

        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                if (!IsPostBack)
                {
                    _producto = (WCF_Gimnasio.cls_Producto)CargarPagina.SeleccionarObjeto("Producto");

                    _gimnasio.IdUsuarioInicioSeccion = Convert.ToInt32(Session["idUSuario"]);
                    ddl_Gim.DataTextField = "NOMBRE_CENTRO";
                    ddl_Gim.DataValueField = "ID_GIMNASIO";
                    ddl_Gim.DataSource = _servicio.Listar(3, _gimnasio).Tables[0];
                    ddl_Gim.DataBind();


                    _tipoproducto.IdUsuarioInicioSeccion = Convert.ToInt32(Session["idUSuario"]);
                    ddl_TipoP.DataTextField = "DESCRIPCION";
                    ddl_TipoP.DataValueField = "ID_TIPO_PRODUCTO";
                    ddl_TipoP.DataSource = _servicio.Listar(3, _tipoproducto).Tables[0];
                    ddl_TipoP.DataBind();


                    _proveedor.IdUsuarioInicioSeccion = Convert.ToInt32(Session["idUSuario"]);
                    ddl_Proveedor.DataTextField = "NOMBRE";
                    ddl_Proveedor.DataValueField = "ID_PROVEEDOR";
                    ddl_Proveedor.DataSource = _servicio.Listar(3, _proveedor).Tables[0];
                    ddl_Proveedor.DataBind();

                    if (_producto == null ? false : true)
                    {
                        txt_Id.Text = _producto.IdProducto.ToString();
                        txt_NombreP.Text = _producto.NombreProducto;
                        txt_CodigoP.Text = _producto.CodigoProducto;
                        txt_DescP.Text = _producto.Descripcion;
                        ddl_Proveedor.SelectedValue = _producto.IdProveedor.ToString();
                        ddl_Gim.SelectedValue = _producto.IdGimnasio.ToString();
                        ddl_TipoP.SelectedValue = _producto.IdTipoProducto.ToString();
                        txt_CantidadActual.Text = _producto.CantidadActual.ToString();
                        txt_PrecioCompra.Text = _producto.PrecioCompra.ToString();
                        txt_PrecioVenta.Text = _producto.PrecioVenta.ToString();
                        txt_Impuesto.Text = _producto.Impuesto.ToString();
                        txt_Maximo.Text = _producto.Maximo.ToString();
                        txt_Minimo.Text = _producto.Minimo.ToString();
                        if (_producto.Decimales == true)
                            chk_DecActivos.Checked = true;
                        else
                            chk_DecInactivos.Checked = true;
                        txt_Ganancia.Text = _producto.Ganacia.ToString();
                        txt_Util.Text = _producto.PorcentajeUtilidad.ToString();
                        if (_producto.IdEstado == 2)
                            chk_Activo.Checked = true;
                        else
                            chk_Inactivo.Checked = true;
                    }
                }
            }
            catch (Exception ex)
            {
                string script = @"<script type='text/javascript'> smoke.alert('" + ex.Message + "', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
        }

        #endregion

        protected void chk_DecActivos_CheckedChanged(object sender, EventArgs e)
        {
            if (chk_DecActivos.Checked == true)
                chk_DecInactivos.Checked = false;
        }

        protected void chk_DecInactivos_CheckedChanged(object sender, EventArgs e)
        {
            if (chk_DecInactivos.Checked == true)
                chk_DecActivos.Checked = false;
        }

        protected void chk_Activo_CheckedChanged(object sender, EventArgs e)
        {
            if (chk_Activo.Checked == true)
                chk_Inactivo.Checked = false;
        }

        protected void chk_Inactivo_CheckedChanged(object sender, EventArgs e)
        {
            if (chk_Inactivo.Checked == true)
                chk_Activo.Checked = false;
        }

        protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
        {
            try
            {
                if (Convert.ToInt32(txt_Minimo.Text) >= 20)
                {
                    if ((Convert.ToInt32(txt_Minimo.Text) + 20) <= Convert.ToInt32(txt_Minimo.Text))
                    {
                        string rtn = "";
                        _producto.IdUsuarioInicioSeccion = Convert.ToInt32(Session["idUSuario"]);
                        _producto.NombreProducto = txt_NombreP.Text;
                        _producto.CodigoProducto = txt_CodigoP.Text;
                        _producto.Descripcion = txt_DescP.Text;
                        _producto.IdProveedor = Convert.ToInt32(ddl_Proveedor.SelectedValue);
                        _producto.IdGimnasio = Convert.ToInt32(ddl_Gim.SelectedValue);
                        _producto.IdTipoProducto = Convert.ToInt32(ddl_TipoP.SelectedValue);
                        _producto.CantidadActual = Convert.ToDecimal(txt_CantidadActual.Text);
                        _producto.PrecioCompra = Convert.ToDecimal(txt_PrecioCompra.Text);
                        _producto.PrecioVenta = Convert.ToDecimal(txt_PrecioVenta.Text);
                        _producto.Impuesto = Convert.ToDecimal(txt_Impuesto.Text);
                        _producto.Maximo = Convert.ToInt32(txt_Maximo.Text);
                        _producto.Minimo = Convert.ToInt32(txt_Minimo.Text);
                        _producto.Decimales = chk_DecActivos.Checked == true ? true : false;
                        _producto.Ganacia = Convert.ToDecimal(txt_Ganancia.Text);
                        _producto.PorcentajeUtilidad = Convert.ToDecimal(txt_Util.Text);
                        _producto.IdEstado = chk_Activo.Checked == true ? 2 : 1;
                        //chk_Activo.Checked = _producto.id == true ? true : false;

                        if (txt_Id.Text == "")
                        {
                            _servicio.InsertarActualizarRegistro(true, ref rtn, _producto);
                            Response.Redirect("wbfrm_Mantenimiento_Productos.aspx", false);
                        }
                        else
                        {
                            _producto.IdProducto = Convert.ToInt32(txt_Id.Text);
                            _servicio.InsertarActualizarRegistro(false, ref rtn, _producto);
                            Response.Redirect("wbfrm_Mantenimiento_Productos.aspx", false);
                        }
                    }
                    else
                    {
                        string script = @"<script type='text/javascript'> smoke.alert('La diferencia entre el minimo y el maximo debe ser de 20', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                        ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                    }
                }
                else
                {
                    string script = @"<script type='text/javascript'> smoke.alert('El minimo debe ser mayo o igual a 20', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
                }

                    
            }
            catch (Exception ex)
            {
                string script = @"<script type='text/javascript'> smoke.alert('" + ex.Message + "', function (e) {}, {ok: 'OK',classname: 'custom-class'}); </script>";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, false);
            }
            finally
            {
                _servicio.Close();
            }
        }
    }
}